/**
 * ReportGear(2011)
 */
package com.reportgear.report.model.cell.value.salary;

import org.dom4j.Element;

import com.reportgear.report.model.cell.value.AbstractCellObject;
import com.reportgear.report.model.cell.value.ModelDesignableValueObjectClassManager;
import com.sot.core.util.NumberUtils;

/**
 * 工资对象，四川电信<br/>
 * 组织机构或成本中心<br/>
 * 每个报表系统中只能有一个，生成报表是自动扩展<br/>
 * 一些基本信息来自报表的设置：层级信息、分组信息
 * 
 * @version 1.0 2011-5-30
 * @author <a herf="lexloo@gmail.com">lexloo</a>
 * @since Report 1.0
 */
public class SalaryObject extends AbstractCellObject {
	public SalaryObject() {
		this.type = SalaryObjectType.COSTCENTER;
	}

	/**
	 * 对象类型
	 */
	private SalaryObjectType type;

	/**
	 * 设置对象类型
	 * 
	 * @param type
	 *            对象类型
	 */
	public void setType(SalaryObjectType type) {
		this.type = type;
	}

	/**
	 * 获取对象类型
	 * 
	 * @return 对象类型
	 */
	public SalaryObjectType getType() {
		return type;
	}

	@Override
	public String toString() {
		return this.type + " 对象";
	}

	@Override
	public void read(Element parent) {
		this.type = ("1".equals(parent.elementText("type")) ? SalaryObjectType.ORGANIZATION
				: SalaryObjectType.COSTCENTER);
	}

	@Override
	public void write(Element parent) {
		parent.addAttribute("class", ModelDesignableValueObjectClassManager.INSTANCE.getClassKey(this.getClass()));

		Element el = parent.addElement("type");
		el.addText(String.valueOf(this.getType().getValue()));
	}
}
